package alkuperainen;
import java.util.ArrayList;


public class Opiskelija implements java.io.Serializable {
	
	private String nimi;
	private int opiskelijanumero;
	private ArrayList<Tapahtuma> omatTapahtumat;
	private ArrayList<Kurssi> ilmoittautumiset;
	private ArrayList<Kurssi> suoritukset;
	
	public Opiskelija(String nimi, int opnro){
		this.nimi = nimi;
		this.opiskelijanumero = opnro;
		omatTapahtumat = new ArrayList<Tapahtuma>();
		ilmoittautumiset = new ArrayList<Kurssi>();
		suoritukset = new ArrayList<Kurssi>();
	}
	
	public String getNimi(){
		return nimi;
	}
	
	public int getOpnro(){
		return opiskelijanumero;
	}
	
	public void lisaaIlmoittautuminen(Kurssi k){
		if (!ilmoittautumiset.contains(k)){
			ilmoittautumiset.add(k);
			k.lisaaOpiskelija(this);
		}
	}
	
	public void lisaaSuoritus(Kurssi k){
		if (!suoritukset.contains(k)){
			suoritukset.add(k);
			k.lisaaOpiskelija(this);
		}
		ilmoittautumiset.remove(k);
	}
	
	public void lisaaTapahtuma(Tapahtuma t){
		if (!omatTapahtumat.contains(t))
			omatTapahtumat.add(t);
	}
	
	public ArrayList<Tapahtuma> getTapahtumat(){
		return omatTapahtumat;
	}
	
	public ArrayList<Kurssi> getIlmot(){
		return ilmoittautumiset;
	}
	
	public ArrayList<Kurssi> getSuoritukset(){
		return suoritukset;
	}
	
	public int countOp(){
		int summa = 0;
		for (int i = 0; i < suoritukset.size(); i++){
			summa += suoritukset.get(i).getOp();
		}
		return summa;
	}
	
	public int countSuunniteltuOp(){
		int summa = countOp();
		for (int i = 0; i < ilmoittautumiset.size(); i++){
			summa += ilmoittautumiset.get(i).getOp();
		}
		return summa;
	}
}
